<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>

        // function *foo() {
        //     console.log('start')
        //     try {
        //         const res = yield 'foo'
        //         console.log(res)
        //     } catch(e) {
        //         console.log(e)
        //     }
        // }

        // const generator = foo()
        // console.log(generator)
        // console.log(generator.next('bar'))

        // const promise = new Promise((res, rej) => {
        //     console.log(1)
        //     res()
        //     console.log(2)
        // })

        // promise.then(() => {
        //     console.log(3)
        // })
        // console.log(4)

        // Promise.resolve(1)
        //     .then((res) => {
        //         console.log(res)
        //         return 2
        //     })
        //     .catch((err) => {
        //         return 3
        //     })
        //     .then((res) =>{
        //         console.log(res)
        //     })

        // const promise1 = new Promise((res, rej) => {
        //     res('s1')
        //     rej('err')
        //     res('s2')
        // })

        // promise1.then((res) => {
        //     console.log('then: ',res)
        // })
        // .catch((err) => {
        //     console.log('catch', err)
        // })

        // Promise.resolve(1).then(2).then(Promise.resolve(3)).then(console.log)

        function autoAdd() {
            let a = 0
            return () => a+=1
        }
        const add1 = autoAdd()
        console.log(add1())
        console.log(add1())

        let arr = [1,2,3]
        const itemAdd = item => item += 2
        arr = arr.map(itemAdd)
        console.log(arr)
    </script>
</body>
</html>